System and method for controlling the disclosure of a trading order

ABSTRACT

A system for controlling the disclosure of a trading order comprises a memory and a processor. The memory stores disclosure policies associated with market centers. The processor receives a trading order for a trading product that specifies a total quantity of the trading product and a maximum disclosure quantity of the trading product. The trading order is associated with a particular market center. The processor then routes the trading order to the particular market center according to the disclosure policy associated with the particular market center.

CROSS-REFERENCE TO RELATED APPLICATIONS

This patent application is a continuation of U.S. patent applicationSer. No. 16/387,657 filed Apr. 18, 2019, which is a continuationapplication of U.S. patent application Ser. No. 10/767,699, filed Jan.29, 2004 (now U.S. Pat. No. 10,304,097 issued May 28, 2019), which arehereby incorporated by reference herein in their entireties.

TECHNICAL FIELD OF THE INVENTION

The present invention relates generally to electronic trading and morespecific ally to a system for controlling the disclosure of a tradingorder.

BACKGROUND OF THE INVENTION

In recent years, electronic trading systems have gained widespreadacceptance for trading of a wide variety of items, such as goods,services, financial instruments, and commodities. For example,electronic trading systems have been created which facilitate thetrading of financial instruments and commodities such as stocks, bonds,currency, futures contracts, oil, and gold.

Many of these electronic trading systems use a bid/offer process inwhich bids and offers are submitted to the systems by a passive side andthen those bids and offers are hit or lifted (or taken) by an aggressiveside. For example, a passive trading counterparty may submit a “bid” tobuy a particular trading product. In response to such a bid, anaggressive side counterparty may submit a “hit” in order to indicate awillingness to sell the trading product to the first counterparty at thegiven price. Alternatively, a passive side counterparty may submit an“offer” to sell the particular trading product at the given price, andthen the aggressive side counterparty may submit a “lift” (or “take”) inresponse to the offer to indicate a willingness to buy the tradingproduct from the passive side counterparty at the given price.

SUMMARY OF THE INVENTION

In accordance with the present invention, the disadvantages and problemsassociated with prior electronic trading systems have been substantiallyreduced or eliminated.

In accordance with one embodiment of the present invention, a system forrouting a trading order to a market center comprises a memory and aprocessor. The memory stores a trading order specifying a tradingproduct. The processor determines a plurality of market center pricesfor the trading product, each market center price associated with atleast one of a plurality of market centers. The processor selects one ofthe plurality of market centers based upon the determined market centerprices. The processor further determines a disclosure policy for theselected market center and routes the trading order to the selectedmarket center according to the determined disclosure policy.

In accordance with another embodiment of the present invention, a systemfor routing a trading order to a market center according to pricecomprises a memory and a processor. The memory stores policyinformation, cost and rebate information associated with a plurality ofmarket centers. The processor receives a trading order specifying atrading product, a plurality of market center prices for the tradingorder, and best price information for the trading product. The processoradjusts at least one market center price according to the policyinformation of the corresponding market center and the best priceinformation. The processor also adjusts at least one market center priceaccording to at least one of the cost information and the rebateinformation of the corresponding market center. The processor thencompares the plurality of market center prices and selects a particularmarket center based at least in part upon the comparison.

In accordance with another embodiment of the present invention, a systemfor controlling the disclosure of a trading order comprises a memory anda processor. The memory stores disclosure policies associated withmarket centers. The processor receives a trading order for a tradingproduct that specifies a total quantity of the trading product and amaximum disclosure quantity of the trading product. The trading order isassociated with a particular market center. The processor then routesthe trading order to the particular market center according to thedisclosure policy associated with the particular market center.

In accordance with another embodiment of the present invention, a systemfor avoiding transaction costs associated with trading orders comprisesa memory and processor. The memory stores an order identifier associatedwith a trading order, and a time threshold associated with the tradingorder. The processor monitors the length of time the trading order isactive with a market center that is processing the trading order. Theprocessor further determines a timeout when the length of time thetrading order is active with the market center equals or exceeds thetime threshold. The processor then communicates a cancel instruction forthe trading order in response to determining the timeout.

In accordance with another embodiment of the present invention, a systemfor matching trading orders comprises a memory and a processor. Thememory stores a plurality of bid requests for a trading product, eachbid request is associated with at least one of a trader and a marketcenter, a bid quantity for the trading product, and a bid price for thetrading product. The processor receives a trading order specifying anoffer request for the trading product, the trading order furtherspecifying an offer quantity for the trading product and a target offerprice for the trading product. The processor identifies at least one ofthe plurality of bid requests having a bid price that is greater than orequal to the target offer price. The processor then matches the offerrequest of the trading order with the at least one identified bidrequest if the identified bid request is associated with a trader androutes the trading order to a particular market center if the at leastone identified bid request is associated with the particular marketcenter.

In accordance with still another embodiment of the present invention, asystem for matching trading orders comprises a memory and a processor.The memory stores plurality of offer requests for a trading product,each offer request associated with at least one of a trader and a marketcenter, an offer quantity for the trading product, and an offer pricefor the trading product. The processor receives a trading orderspecifying a bid request for the trading product, the trading orderfurther specifying a bid quantity for the trading product and a targetbid price for the trading product. The processor identifies at least oneof the plurality of offer requests having an offer price that is lessthan or equal to the target bid price. The processor then matches thebid request of the trading order with the at least one identified offerrequest if the identified offer request is associated with a trader androutes the trading order to a particular market center if the at leastone identified offer request is associated with the particular marketcenter.

Various embodiments of the present invention may benefit from numerousadvantages. It should be noted that one or more embodiments may benefitfrom some, none, or all of the advantages discussed below.

In general, the system of the present invention optimizes the processingof trading orders by internally matching trading orders within a tradingexchange platform, filling trading orders using market centers, avoidingtransaction costs associated with market centers, routing trading ordersto particular market centers based upon the best achievable price, andcontrolling the disclosure of certain details of a trading order tomarket centers.

Other advantages will be readily apparent to one having ordinary skillin the art from the following figures, descriptions, and claims.

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of the present invention and itsadvantages, reference is now made to the following description, taken inconjunction with the accompanying drawings, in which:

FIG. 1 illustrates one embodiment of a trading system in accordance withthe present invention;

FIG. 2 illustrates one embodiment of a pricing module of the system ofFIG. 1;

FIG. 3 illustrates a table of information used by the pricing module;

FIG. 4 illustrates a flowchart of an exemplary method for routingtrading orders according to price;

FIG. 5 illustrates one embodiment of a cost avoidance module of thesystem of FIG. 1;

FIGS. 6A-6B illustrate a flowchart of an exemplary method for avoidingtransaction costs;

FIG. 7 illustrates a table of information used by the cost avoidancemodule;

FIG. 8 illustrates one embodiment of a size disclosure module of thesystem of FIG. 1;

FIG. 9 illustrates a table of information used by the cost avoidancemodule;

FIG. 10 illustrates a flowchart of an exemplary method for controllingthe size disclosure of a trading order;

FIG. 11 illustrates one embodiment of an order matching module;

FIG. 12 illustrates an order matching log used by the order matchingmodule; and

FIG. 13 illustrates a flowchart of an exemplary method for performingorder matching.

DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS OF THE INVENTION

FIG. 1 illustrates one embodiment of a trading system 10 that includes atrading exchange platform 12 coupled to a variety of clients 14 usingnetwork 16 and further coupled to market centers 18. In general, system10 optimizes the processing of trading orders 20 by internally matchingtrading orders 20 within trading exchange platform 12, filling tradingorders 20 using market centers 18, avoiding transaction costs associatedwith market centers 18, routing trading orders 20 to particular marketcenters 18 based upon the best and controlling the disclosure of certaindetails of a trading order 20 to market centers 18.

A trading order 20 comprises an order to buy a particular quantity of aparticular trading product (e.g., bid request) or an order—to sell aparticular quantity of a particular trading product (e.g., offerrequest). The quantity of the trading product to be bought or sold isreferred to herein as the “total quantity.” Trading order 20 may furtherspecify a “maximum disclosure quantity” which identifies all or aportion of the total quantity that may be disclosed to a market center18 at any given time. In particular embodiments, a trading order 20 mayalso specify a target price (e.g., target bid price and target offerprice) for the trading product. Although the following description ofsystem 10 is detailed with respect to trading equities, the tradingproduct that forms the basis of a given trading order 20 may compriseany type of goods, services, financial instruments, commodities, etc.Examples of financial instruments include, but are not limited to,stocks, bonds, and futures contracts.

Clients 14 comprise any suitable local or remote end-user devices thatmay be used by traders to access one or more elements of trading system10, such as trading exchange platform 12. For example, a client 14 maycomprise a computer, workstation, telephone, an Internet browser, anelectronic notebook, a Personal Digital Assistant (PDA), a pager, or anyother suitable device (wireless or otherwise), component, or elementcapable of receiving, processing, storing, and/or communicatinginformation with other components of system 10. A client 14 may alsocomprise any suitable interface for a trader such as a display, amicrophone, a keyboard, or any other appropriate terminal equipmentaccording to particular configurations and arrangements. It will beunderstood that there may be any number of clients 14 coupled to network16. Although clients 14 are described herein as being used by “traders,”it should be understood that the term “trader” is meant to broadly applyto any user of trading system 10, whether that user is an agent actingon behalf of a principal, a principal, an individual, a legal entity(such as a corporation}, or any machine or mechanism that is capable ofplacing and/or responding to trading orders 20 in system 10.

Network 16 is a communication platform operable to exchange data orinformation between clients 14 and trading exchange platform 12. Network16 represents an Internet architecture in a particular embodiment of thepresent invention, which provides traders operating clients 14 with theability to electronically execute trades or initiate transactions to bedelivered to exchange platform 12. Network 16 could also be a plain oldtelephone system (POTS), which traders could use to perform the sameoperations or functions. Such transactions may be assisted by a brokerassociated with exchange platform 12 or manually keyed into a telephoneor other suitable electronic equipment in order to request that atransaction be executed. In other embodiments, network 16 could be anypacket data network (PON) offering a communications interface orexchange between any two nodes in system 10. Network 16 may furthercomprise any combination of local area network (LAN), metropolitan areanetwork (MAN), wide area network (WAN), wireless local area network(WLAN), virtual private network (VPN), intranet, or any otherappropriate architecture or system that facilitates communicationsbetween clients 14 and exchange platform 12.

Market centers 18 comprise all manner of order execution venuesincluding exchanges, Electronic Communication Networks (ECNs),Alternative Trading Systems (ATSs), market makers, or any other suitablemarket participants. Each market center 18 maintains a bid and offerprice in a given trading product by standing ready, willing, and able tobuy or sell at publicly quoted prices, also referred to as market centerprices.

Trading exchange platform 12 is a trading architecture that facilitatesthe routing, matching, and otherwise processing of trading orders 20.Exchange platform 12 may comprise a management center or aheadquartering office for any person, business, or entity that seeks tomanage the trading of orders 20. Accordingly, exchange platform 12 mayinclude any suitable combination of hardware, software, personnel,devices, components, elements, or objects that may be utilized orimplemented to achieve the operations and functions of an administrativebody or a supervising entity that manages or administers a tradingenvironment. In the particular embodiment described herein, tradingexchange platform 12 includes a number of interfaces, modules anddatabases that are executed to support the order processing activitiesof system 10.

Client interface 30 coupled to network 16 supports communication betweenclients 14 and the various components of exchange platform 12. In aparticular embodiment, client interface 30 comprises a transactionserver that receives trading orders 20 communicated by clients 14.

Order handling module 32 is coupled to client interface 30 and performsa number of order handling tasks within exchange platform 12. Inparticular, order handling module 32 records trading orders 20 indatabase 50 and routes trading orders 20 to various other modules orinterfaces within exchange platform 12 for further processing. Marketcenter interface 34 supports communication between exchange platform 12and market centers 18.

Different market centers 18 provide different market center prices forparticular trading products. For example, a particular market center 18may offer a particular bid price and/or offer price for a particulartrading product, while another market center 18 may offer a differentbid price and/or offer price for the same trading product. Pricingmodule 38 selects a particular market center 18 to which to route aparticular trading order 20 based upon the best market center price thatmay be obtained for the particular trading order 20, as described ingreater detail with reference to FIGS. 2-4. In particular embodiments,pricing module 38 adjusts the market center prices of trading productsaccording to cost information, rebate information, and/or best priceinformation associated with market centers 18, prior to selecting aparticular market center 18, as described in greater detail below.

Particular market centers 18 charge a transaction cost in order toexecute a trading order 20 that remains in their order book for morethan a certain length of time. Cost avoidance module 40 manages tradingorders 20 that are pending with these types of market centers 18 inorder to avoid these transaction costs, as described in greater detailwith reference to FIGS. 5-7.

Different market centers 18 have adopted different policies regardingthe disclosure to market makers of various details of a trading order20, such as, for example, the size of a trading order 20. Sizedisclosure module 42 manages the disclosure of various details of atrading order 20 to market centers 18 based upon the disclosure policiesadopted by those market centers 18, as described in greater detail withreference to FIGS. 8-10.

Order matching module 44 internalizes the matching of trading orders 20within trading exchange platform 12, as described in greater detail withreference to FIGS. 11-13. In this regard, order matching module 44 maymatch an incoming trading order 20 specifying a bid request for atrading product with one or more stored offer requests for the tradingproduct. Similarly, order matching module 44 may match an incomingtrading order 20 specifying an offer request for a trading product withone or more stored bid requests for the trading product.

Each module described above with reference to trading exchange platform12 comprises any suitable combination of hardware and software toprovide the described function or operation of the module. For example,modules may include program instructions and associated memory andprocessing components to execute the program instructions. Also, modulesillustrated in FIG. 1, and the operation associated therewith, may beseparate from or integral to other modules. Furthermore, each of modules38, 40, 42, and 44 may operate in conjunction with each other or on a‘stand-alone basis according to particular needs and desires.

Database 50 comprises one or more files, lists, tables, or otherarrangements of information stored in one or more components of randomaccess memory (RAM), read only memory (ROM), magnetic computer disk,CD-ROM, or other magnetic or optical storage media, or any othervolatile or non-volatile memory devices. Although FIG. 1 illustratesdatabase 50 as internal to trading exchange platform 12, it should beunderstood that database 50 may be internal or external to components ofsystem 10, depending on particular implementations. Also, database 50illustrated in FIG. 1 may be separate or integral to other databases toachieve any suitable arrangement of databases for use in system 10.Database 50 stores trading orders 20 and associated order identifiers 52(e.g., internal order identifiers and external order identifiers), timethresholds 54, and order status information 56, as well as information58 associated with market centers 18 (e.g., best price policyinformation, cost information, rebate information, disclosure policyinformation), and an order matching log 60.

It should be noted that the internal structure of trading exchangeplatform 12, and the interfaces, modules, and databases associatedtherewith, is malleable and can be readily changed, modified,rearranged, or reconfigured in order to achieve its intended operations.

Price server 70 provides pricing information to trading exchangeplatform 12. The pricing information may include market center prices,best bid prices (e.g., highest price a market center 18 is willing topay for buying a trading product), and best offer prices (e.g., lowestprice a market center 18 is willing to receive for selling a tradingproduct). The best bid prices and the best offer prices are collectivelyreferred to as best price information. In particular embodiments, priceserver 70 receives pricing information from market centers 18. In otherembodiments, price server 70 receives pricing information from one ormore market data vendors 72.

Pricing Module

FIG. 2 illustrates one embodiment of pricing module 38 coupled todatabase 50 and price server 70. Pricing module 38 is illustratedseparate from other elements of trading exchange platform 12 and system10 for illustrative purposes only, and it should be understood thatpricing module 38 may interoperate with one or more other components ofsystem 10 to perform the operations described herein. Where appropriate,FIG. 3 will be referred to in order to clarify various operationsperformed by pricing module 38.

Pricing module 38 receives a trading order 20 that comprises an order tobuy a particular quantity of a particular trading product (e.g., bidrequest) or an order to sell a particular quantity of a particulartrading product (e.g., offer request) However, the trading order 20 isunspecified as to which market center 18 it is to be routed. Pricingmodule 38 identifies particular market centers 18 to which the tradingorder 20 may potentially be routed. Referring to FIG. 3 that illustratesa table 100, for example, pricing module 38 may identify five marketcenters 18 that could potentially match the trading order 20 received bypricing module eligible market 38. As illustrated in table 100, the 18could include: ARCA, ISLD, NITE, MWSE, and BRUT.

Referring back to FIG. 2, pricing module 38 receives from price server70 market center prices 102 for the trading product underlying thetrading order 20. As illustrated in table 100, the market center prices102 may be formatted as: bid price X offer price. The market centerprices 102 may be valid for some or all of the specified quantity of thetrading product underlying the trading order 20. Moreover, each marketcenter 18 may have a different market center price 102 for theparticular trading product.

Pricing module 38 also receives from price server 70 a best price 104for the trading product. Best price 104 represents the best bid price104 and best offer price 104 that is available for the trading productamong all market centers 18. For example, the best bid price 104comprises the highest price that any market center 18 is willing to paywhen buying the trading product. The best offer price 104 comprises alowest price that any market center 18 is willing to receive whenselling the trading product. For the example described herein, the bestprice 104 for the trading product is 9.500×10.000 at BRUT×BRUT.

Pricing module 38 performs one or more adjustments to market centerprices 102 according to market center information 58 and best price 104.The market center information 58 may include a best price policy 106,cost information 108, and rebate information 110. The best price policy106 of each market center 18 indicates what that market center 18 willdo in response to the best price 104. For example, the market center 18may match the best price 104, split the best price 104, or disregard thebest price 104. The cost information 108 specifies a transaction costcharged by a particular market center 18 for processing the tradingorder 20. The rebate information 110 specifies a transaction rebatecredited by a particular market center 18 for processing the tradingorder 20. Therefore, pricing module 38 adjusts market center prices 102according to these factors to determine an adjusted market center price112 for each market center 18.

Referring to table 100, for example, pricing module 38 receives a marketcenter price 102 of 9.250×10.010 for ARCA and determines that ARCAdisregards best price 104, charges $0.003 as a transaction cost, anddoes not rebate anything for processing the trading order 20. Pricingmodule therefore determines that the adjusted market center price 112for ARCA is 9.247×10.013.

With respect to ISLD, pricing module 38 receives a market center price102 of 9.260×10.020 and determines that ISLD disregards best price 104,does not charge a transaction cost, and rebates $0.003 for processingthe trading order 20. Pricing module therefore determines that theadjusted market center price 112 for ISLD is 9.263×10.017.

With respect to NITE, pricing module 38 receives a market center price102 of 9.000×10.050 and determines that NITE matches best price 104,which is 9.500×10.000. By matching best price 104, pricing module 38sets the bid price 102 of NITE to the best bid price 104 of 9.500 andsets the offer price 102 of NITE to the best offer price 104 of 10.000.Pricing module 38 determines that NITE neither charges a transactioncost nor credits a transaction rebate for processing trading order 20.As a result, pricing module 38 determines that the adjusted marketcenter price 112 for NITE is 9.500×10.000.

With respect to MWSE, pricing module 38 receives a market center price102 of 9.000×10.060 and determines that MWSE splits best price 104,which is 9.500×10.000. By splitting best price 104, pricing module 38sets the bid price 102 and offer price 102 of MWSE to the average of thebest bid price 104 and best offer price 104, which is 9.750. Pricingmodule 38 determines that MWSE charges $0.001 as a transaction cost butdoes not rebate anything for processing the trading order 20. As aresult, pricing module 38 determines that the adjusted market centerprice 112 for MWSE is 9.749×9.751.

With respect to BRUT, pricing module 38 receives a market center price102 of 9.500×10.000, determines that BRUT disregards best price 104,charges $0.004 as a transaction cost, and does not rebate anything forprocessing the trading order 20. Pricing module therefore determinesthat the adjusted market center price 112 for BRUT is 9.496×10.004.

Based upon the adjusted market center prices 112 and the side of thetrading order 20 that pricing module 38 is processing (e.g., bid oroffer), pricing module 38 compares market center prices 112 andidentifies the market centers 18 where the best market center price 112is available. For example, if the trading order 20 specified a bidrequest for a trading product, the pricing module 38 identifies themarket centers 18 offering the lowest offer price 112 for the tradingproduct. In this regard, pricing module 38 selects MWSE associated withan offer price 112 of 9.751, and routes trading order 20 to MWSE. If thetrading order 20 specified an offer request for the trading product, thepricing module 38 identifies the market centers 18 offering the highestbid price 112 for the trading product. In this regard, pricing module 38selects MWSE associated with a bid price 112 of 9.749, and routestrading order 20 to MWSE.

Although market center prices 102 are described above as being adjustedin response to best price 104 and best price policy 106, costinformation 108, and rebate information 110, it should be understoodthat pricing module 38 may adjust market center prices 102 according tosome or all of those factors to determine market center prices 112. Forexample, pricing module 38 may adjust market center prices 102 accordingto best price 104 and best price policy 106 but not according to costinformation 108 or rebate information 110. Moreover, pricing module 38may adjust market center prices 102 according to cost information 108and/or rebate information 110 but not according to best price 104 andbest price policy 106.

FIG. 4 illustrates a flowchart 150 of an exemplary method for routingtrading orders 20 to market centers 18 according to price. The methodbegins at step 152 where pricing module 38 receives a trading order 20.Pricing module 38 receives market center prices 102 for the tradingproduct underlying the trading order 20, at step 154. Pricing module 38determines whether an adjustment to market center prices 102 is to bemade according to best price at step 156. If so, execution proceeds tostep 158 where pricing module 38 receives best prices 104. Best prices104 may include best bid price 104 and/or best offer price 104.

Pricing module 38 determines the best price policy 106 of market centers18 at step 160. In particular embodiments, best price policy 106 isstored as a part of market center information 58 in database 50. Pricingmodule 38 adjusts market center prices 102 accordingly at step 162. Inparticular, if a particular market center 18 disregards best prices 104,then pricing module 38 does not adjust the market center price 102 forthat market center 18. If a particular market center 18 matches the bestprices 104, then pricing module sets the bid price 102 of that marketcenter 18 to the best bid price 104 and sets the offer price 102 of thatmarket center 102 to the best offer price 104. If a particular marketcenter 18 splits the best prices 104, then pricing module 38 sets thebid price 102 and offer price 102 of that market center 18 to theaverage of the best bid price 104 and best offer price 104.

Upon adjusting market center prices 102 at step 162, or if it isdetermined that market center prices 102 are not to be adjustedaccording to best price 104 at step 156, execution proceeds to step 164where pricing module 38 determines whether to adjust market centerprices 102 according to cost information 108 and/or rebate information110. If so, execution proceeds to step 166 where pricing module 38determines cost information 108 and/or rebate information 110 for marketcenters 18. In particular embodiments, information 108 and 110 is storedas a part of market center information 58 in database 50.

Pricing module 38 adjusts market center prices 102 at step 168. Inparticular, if a particular market center 18 charges a transaction costfor processing a trading order 20, then pricing module 38 subtracts thetransaction cost from the bid price 102 of the particular market center18 and adds the transaction cost to the offer price 102 of theparticular market center 18. If a particular market center 18 credits atransaction rebate for processing a trading order 20, then pricingmodule adds the transaction rebate to the bid price 102 of theparticular market center 18 and subtracts the transaction rebate fromthe offer price 102 of the particular market center 18. If pricingmodule 38 previously adjusted market center prices 102 at step 162, thenat step 168 pricing module 38 adjusts the previously adjusted marketprices further.

Upon adjusting market center prices 102 at step 168, or if it isdetermined that market center prices 102 are not to be adjustedaccording to cost information 108 and/or rebate information 110 at step164, execution proceeds to step 170 where pricing module 38 comparesadjusted market center prices 112. In particular, pricing module 38identifies the lowest offer price 112 for the trading product if thetrading order 20 specifies a bid request. Pricing module 38 identifiesthe highest bid price 112 for the trading product if the trading order20 specifies an offer request. If market center prices 102 have not beenadjusted at either of steps 162 or 168, then pricing module 38 comparesmarket center prices 102 at step 170.

Execution proceeds to step 172 where pricing module 38 selects a marketcenter 18 based upon the comparison performed at step 170. Inparticular, pricing module 38 identifies each of the market centers 18that offer the lowest offer price 112 and/or the highest bid price 112.If more than one market center 18 qualifies, then pricing module 38 mayselect a particular one market center 18 according to a pre-establishedpriority ranking of market centers 18, or according to other decisionfactors.

In certain instances, more than one market center 18 may offer thelowest offer price 112 or the highest bid price 112. In those instances,module 38 may identify those market centers 18 that offer the lowestoffer price 112 or highest offer price 112 for a quantity of the tradingproduct that is at least as much as a quantity specified by tradingorder 20. Module 38 then selects one of the identified market centers18.

Trading exchange platform 12 routes the trading order 20 to the selectedmarket center 18 at step 174. In particular embodiments, other modulesof trading exchange platform 12 will perform processing of the tradingorder 20 either before or after the operation of pricing module 38.Therefore, it should be understood that other modules associated withexchange platform 12, or even market center interface 34, may route thetrading order 20 to the selected market center 18 on behalf of pricingmodule 38. The method terminates at step 176.

It should be understood that the steps described in the flowchart ofFIG. 4, as well as in other flowcharts illustrated herein, may beperformed simultaneously and/or in different orders than as shownwithout departing from the scope of this disclosure.

Cost Avoidance Module

FIG. 5 illustrates one embodiment of cost avoidance module 40 coupled todatabase 50 and price server 70. Cost avoidance module 40 is illustratedseparate from other elements of trading exchange platform 12 and system10 for illustrative purposes only, and it should be understood that costavoidance module 40 may interoperate with one or more other componentsof system 10 to perform the operations described herein.

Cost avoidance module 40 receives information regarding a trading order20 that is being routed to a selected market center 18. In someinstances, the selected market center 18 may charge a transaction costin order to execute the trading order 20 if it remains on the order bookof the selected market center 18 for more than a certain length of time.For example, the NYSE and AMEX do not charge any floor brokerage feesfor orders that they are able to execute in under five minutes. However,each charges a fee in order to execute orders that have been in theirbooks for more than five minutes. Information about the identity of theselected market center 18 and the details of the trading order 20 may bereceived by cost avoidance module 40 from pricing module 38. Informationabout the amount and timing of the transaction costs charged by theselected market center 18 may be received by cost avoidance module 40from either or both of pricing module 38 and price server 70.

To avoid these transaction costs, cost avoidance module 40 performs a“cancel and replace” operation. In particular, cost avoidance module 40monitors the length of time a trading order 20 is active with a marketcenter 18 that charges a transaction cost as described above. Costavoidance module 40 may begin such monitoring in response to receivingan acknowledgment 200 that the trading order 20 is active with themarket center 18. Acknowledgment 200 may be received by cost avoidancemodule 40 from any suitable component of platform 12 or directly from aparticular market center 18.

Cost avoidance module 40 determines a timeout when the length of timethe trading order 20 is active with the market center 18 equals orexceeds an associated time threshold 54. Time threshold 54 specifies alength of time that is a predetermined amount of time, also referred toas buffer time, less than the length of time a particular market center18 will process a trading order 20 before charging a transaction cost.For example, if a market center 18 charges a transaction cost formaintaining a trading order 20 active in its order book beyond fiveminutes, then cost avoidance module 40 may determine a timeout when thetrading order 20 has been active for four minutes and fifty seconds. Inthis regard, the time threshold 54 is associated with the market center18 that is processing the trading order 20.

Any suitable time threshold 54 may be selected in order to provideenough buffer time to cancel and replace a trading order 20 as furtherdescribed herein. Therefore, although the time threshold 54 is describedabove as four minutes and fifty seconds in order to maintain a tensecond buffer before transaction costs are charged at the five-minutemark, an earlier or later time threshold 54 may be selected according toparticular needs or desires. For example, in accordance with particularembodiments, the time threshold 54 may be set to thirty seconds (or someother suitable period of time) to automatically perform a cancel/replaceoperation.

In response to determining a timeout, cost avoidance module 40communicates a cancel instruction 202 that effectively removes thetrading order 20 from active status on the order book of the appropriatemarket center 18. Cost avoidance module 40 also communicates an orderinstruction 204 that essentially comprises a new trading order 20 havingthe same parameters of the trading order 20 that was just canceled. Inthis regard, the old trading order 20 is canceled and replaced by a newtrading order 20. Cost avoidance module 40 maintains order identifiers52 (e.g., internal order identifier and external order identifier) inorder to manage the cancel and replace operations described above.

Cancel instruction 202 and order instruction 204 may each becommunicated to one or more components of trading exchange platform 12,such as market center interface 34, for eventual communication to theappropriate market center 18. Alternatively, either or both ofinstructions 202 and 204 may be communicated directly from costavoidance module 40 to the appropriate market center 18. In a particularembodiment, instructions 202 and 204 may be communicated substantiallysimultaneously, or even in the same message.

Although the cancel and replace operation described above causes theinitial trading order 20 to lose its position in the order book of themarket center 18, it reduces transaction costs charged by the marketcenter 18.

FIGS. 6A-6B illustrate a flowchart 210 of an exemplary method foravoiding transaction costs during the processing of trading orders 20 bymarket centers 18. Where appropriate, FIG. 7 will be referred to inorder to clarify various operations performed by cost avoidance module40. The method begins at step 212 where cost avoidance module 40receives information about a particular trading order 20. Theinformation may include the parameters of the trading order 20, theidentity of the particular market center 18 to which the trading order20 is being routed, and an indication that this market center 18 chargesa transaction cost in order to execute the trading order 20 if itremains on the order book for more than a certain length of time.

Cost avoidance module 40 determines a time threshold 54 at step 214.Execution proceeds to steps 216 and 218 where cost avoidance module 40sets an external order identifier 52 a and an internal order identifier52 b for the trading order 20, respectively. Cost avoidance module 40sets order status 56 to pending at step 220. Referring to table 206 ofFIG. 7, for example, cost avoidance module 40 sets external orderidentifier 52 a and internal order identifier 52 b to “1”, as indicatedin row 208 a. Cost avoidance module 40 further determines the timethreshold 54 to be “4:50” and sets the order status to “P” for pending.

Referring back to flowchart 210, cost avoidance module 40 receives anacknowledgment 200 at step 222. Acknowledgment 200 indicates that thetrading order 20 is active with the market center 18. Module 40 starts atimer at step 224 to begin monitoring the length of time the tradingorder 20 is active with the market center 18. Module 40 sets the orderstatus 56 for the trading order 20 to active at step 226, as indicatedin row 208 b of table 206.

Cost avoidance module 40 determines whether the order 20 has been filledby the market center 18 at step 228. In one embodiment, cost avoidancemodule 40 receives a message indicating that the order 20 has beenfilled. This message identifies the order 20 using the internal orderidentifier 52 b.

If the order has not been filled, as determined at step 228, executionproceeds to step 230 where cost avoidance module 40 determines whetherthe order 20 has been canceled. In one embodiment, cost avoidance module40 receives a message, such as a cancel request generated by a trader,requesting that the order 20 be canceled. This message identifies theorder 20 using the external order identifier 52 a.

If the order has not been canceled, as determined at step 230, executionproceeds to step 232 where cost avoidance module 40 determines whetherthe order 20 has been terminated. In one embodiment, cost avoidancemodule 40 receives a message, such as a “UR OUT” message, indicatingthat the order 20 has been terminated. This message identifies the order20 using the internal order identifier 52 b.

If the order has not been terminated, as determined at step 232,execution proceeds to step 234 where cost avoidance module 40 determineswhether a timeout has occurred. In particular, module 40 determines atimeout when the length of time the trading order 20 is active with themarket center 18, as measured for example by the timer that is startedat step 224, equals, or exceeds the time threshold 54 determined at step214. If a timeout has not occurred as determined at step 234, executionreturns to step 228. If a timeout has occurred as determined at step234, execution proceeds to step 236.

At step 236, cost avoidance module 40 sets order status 56 to pending,as indicated in row 208 c of table 206. Module 40 sends cancelinstruction 202 at step 238 and sends order instruction 204 at step 240.Although flowchart 210 illustrates instructions 202 and 204 being sentsequentially in time, it should be understood that they may be sent atsubstantially the same time and/or in a single message or communication.Cancel instruction 202 effectively removes the trading order 20 fromactive status on the order book of the market center 18. Orderinstruction 204 essentially comprises a new trading order 20 having thesame parameters of the trading order 20 that was just canceled. In thisregard, the cost avoidance module 40 performs a “cancel and replace”operation.

Cost avoidance module 40 assigns a new internal order identifier 52 b tobe associated with the new trading order 20. Referring to row 208 d oftable 206, the new internal order identifier 52 b is “2” and it iscross-referenced with the original external order identifier 52 a of“1”. Execution returns to step 220 where module 40 sets the order status56 to pending.

Upon receiving an acknowledgment 200 associated with the new tradingorder 20 at step 222, module 40 starts a timer at step 224 and sets theorder status 56 to active at step 226. In this regard, module 40 beginsmonitoring the length of time that the new trading order 20 is active inthe order book of the market center 18. Row 208 e of table 206 indicatesthat the new trading order 20 has an order status 56 of active.

Execution again proceeds through steps 228, 230, and 232 in order todetermine whether an order has been filled, canceled, or terminated. Ifit is determined at step 228 that the trading order 20 has been filled,such as, for example, in response to a message from market center 18indicating that the order 20 is filled, then execution proceeds to step250. At step 250, module 40 identifies the internal order identifier 52b associated with the filled order 20. As described above, identifier 52b may be specified by the message from market center 18 indicating thatthe order 20 is filled. At step 252, module 40 determines the externalorder identifier 52 a that is associated with the internal orderidentifier 52 b identified at step 250. For example, module 40 may referto row 208 e of table 206 in order to determine the appropriatecross-reference between external order identifier 52 a and internalorder identifier 52 b. Module 40 sends a status message forcommunication to the trader indicating that the order is filled, at step254. The status message uses the external order identifier 52 a in orderto identify the trading order 20 to the trader. Execution terminates atstep 280.

If it is determined at step 230 that the trading order 20 has beencanceled, such as, for example, in response to a message from a traderrequesting that the order 20 be canceled, then execution proceeds tostep 260. At step 260, module 40 identifies the external orderidentifier 52 a associated with the canceled order 20. As describedabove, identifier 52 a maybe specified by the message from the traderrequesting that the order 20 be canceled. At step 262, module 40determines the internal order identifier 52 b that is associated withthe external order identifier 52 a identified at step 260. For example,module 40 may refer to row 208 e of table 206 in order to determine theappropriate cross-reference between external order identifier 52 a andinternal order identifier 52 b. Module 40 sends a cancel instruction 202for communication to the market center 18, at step 264. Cancelinstruction 202 effectively removes the trading order 20 from activestatus on the order book of the market center 18. The cancel instruction202 uses the internal order identifier 52 b in order to identify thetrading order 20 to the market center 18. Execution terminates at step280.

If it is determined at step 232 that the trading order 20 has beenterminated, such as, for example, in response to a message from marketcenter 18 indicating that some or all of the order 20 is terminated,then execution proceeds to step 270. At step 270, module 40 identifiesthe internal order identifier 52 b associated with the terminated order20. As described above, identifier 52 b may be specified by the messagefrom market center 18 indicating that the order 20 is terminated. Atstep 272, module 40 determines the external order identifier 52 a thatis associated with the internal order identifier 52 b identified at step270. For example, module 40 may refer to row 208 e of table 206 in orderto determine the appropriate cross-reference between external orderidentifier 52 a and internal order identifier 52 b. Module 40 sends astatus message for communication to the trader indicating that some orall of the order 20 is terminated, at step 274. The status message usesthe external order identifier 52 a in order to identify the tradingorder 20 to the trader. Execution terminates at step 280.

Size Disclosure Module

FIG. 8 illustrates one embodiment of size disclosure module 42 coupledto database 50. Size disclosure module 42 is illustrated separate fromother elements of trading exchange platform 12 and system 10 forillustrative purposes only, and it should be understood that sizedisclosure module 42 may interoperate with one or more other componentsof system 10 to perform the operations described herein. Whereappropriate, table 300 of FIG. 9 will be referred to in order to clarifyvarious operations performed by size disclosure module 42.

Traders that submit large trading orders 20 may not wish for all marketparticipants to view the total size of their orders 20 but are unlikelyto want to enter a series of smaller orders 20. Size disclosure module42 addresses this problem by allowing a trader to specify in a tradingorder 20 a total quantity of a trading product to buy or sell as well asa maximum disclosure quantity of the trading product to display to themarket participants at any one time. Size disclosure module 42determines the size of the trading order 20 to disclose to particularmarket centers 18 based at least in part upon the disclosure policies ofthose market centers 18, as described more fully herein.

Referring to FIG. 9 that illustrates a table 300, for example, sizedisclosure module 42 may identify the disclosure policies 302 ofdifferent market centers 18. As illustrated in table 300, the marketcenters 18 could include at least three different disclosure policies302: PROP, IOC, and NOIOC.

Prop

A market center that has a disclosure policy 302 of “PROP” has aproprietary reserve capability whereby the market center 18 allowstrading exchange platform 12 to send reserve trading orders 20. Reservetrading orders 20 are orders that specify the total quantity of thetrading product to be traded (e.g., total number of shares of a stock tobe bought or sold), and the maximum disclosure quantity of the tradingproduct to be disclosed to the public at any one time (e.g., maximumnumber of shares of a stock to publicly disclose as being bought orsold). These market centers 18 will fill up to the total quantity butwill not disclose more than the maximum disclosure quantity specified inthe reserve trading order 20.

Many market centers 18 do not support a proprietary reserve capability.Moreover, the best price 104 available for the trading order 20 may beat a market center 18 that does not provide a proprietary reservecapability. Therefore, size disclosure module 42 is able to control thesize disclosure of a trading order 20 even when the market center 18does not offer a proprietary reserve capability.

IOC

A market center 18 that has a disclosure policy 302 of “IOC” does notdisclose IOC orders 20 to market participants. An IOC order 20 comprisesan order that the market center 18 attempts to fill immediately on abest effort basis and cancels what portion they are not able to fillimmediately. In this regard, “IOC” stands for Immediate or Cancel. Withregard to these market centers 18, size disclosure module 42 initiallycommunicates an IOC trading order 20 specifying a total quantity of thetrading product. The market center 18 may or may not fill the entire IOCtrading order 20 but will respond accordingly.

For example, if the trading order 20 received by module 42 specifies atotal quantity of 50,000 shares of stock×and a maximum disclosurequantity of 10,000 shares of stock X, then the IOC trading order 20communicated by module 42 may comprise: “BUY 50,000 shares of stock X,”and the response from the market center may be, for example: “BOUGHT2,000 shares of stock X; UR OUT 48,000 shares of stock X.” The “UR OUT”portion of the response is shorthand notation indicating that the marketcenter 18 has released the trader from the legal liability associatedwith having placed an order 20 in their order book.

If the response from the market center 18 contains a “UR OUT” message,as above, size disclosure module 42 communicates a DAY order 20 for thelesser of the maximum disclosure quantity (e.g., 10,000 shares of stockX) and the remaining quantity for the order 20 (e.g., 48,000 shares ofstock X). A DAY order 20 comprises an order that remains on the orderbook of the market center 18 for the remainder of the current tradingday, or until it is canceled or filled. Therefore, the DAY order 20 maycomprise: “BUY 10,000 shares of stock X.”

When the DAY order 20 is completely filled, size disclosure module 42communicates another IOC order 20 for the remaining quantity of thetrading order 20 (e.g., 38,000 shares of stock X). The process ofalternating the communication of IOC orders 20 and DAY orders 20 to themarket center 18 is repeated until either the trader cancels the order20 or the order 20 is completely filled.

NOIOC

A market center 18 that has a disclosure policy 302 of “NOIOC” disclosesIOC orders 20 to market participants. With regard to these marketcenters 18, size disclosure module 42 communicates a DAY order 20 forthe maximum disclosure quantity. When the DAY order 20 is completelyfilled, module 42 sends another DAY order 20 for the lesser of thespecified maximum disclosure quantity and the remaining quantity of thetrading order 20. This process of sending DAY orders 20 is repeateduntil either the trader cancels the order 20 or the order 20 iscompletely filled.

FIG. 10 illustrates a flowchart 310 of an exemplary method forcontrolling size disclosure of trading orders 20 to market centers 18.The method begins at step 312 where size disclosure module 42 receivestrading order 20 that specifies a total quantity of a trading productand a maximum disclosure quantity of the trading product. Trading order20 may be received from any suitable component of trading exchangeplatform 12 and specifies a particular market center 18 to which it isto be routed. Size disclosure module 42 identifies the particular marketcenter 18 at step 314 and determines the disclosure policy 302associated with the identified market center 18 at step 316 using, forexample, table 300.

Depending upon the type of disclosure policy 302 adopted by theidentified market center 18, size disclosure module 42 performs a numberof operations. Module 42 determines whether the disclosure policy 302 isa proprietary reserve policy at step 318. If so, execution proceeds tostep 320 where module 42 sends a reserve order 20 specifying the totalquantity of the trading product to be bought (or sold) and the maximumdisclosure quantity of the trading product. The reserve order 20 may besent to the market center 18 identified at step 314 by module 42 or byany suitable component of trading exchange platform 12 on behalf ofmodule 42. This is the case with all such communications, such astrading orders 20, sent by module 42. Execution terminates at step 344.

If it is determined at step 318 that the disclosure policy 302 of theidentified market center 18 is not a proprietary reserve policy,execution proceeds to step 322 where module 42 determines whether thedisclosure policy 302 of the identified market center 18 is an IOCpolicy. If so, execution proceeds to step 324 where module 42 sends anIOC order 20 specifying the total quantity of the trading product to bebought (or sold). Module 42 receives a response at step 326 and if it isdetermined at step 328 that the response does not contain a “UR OUT”message, then the entire IOC order 20 was filled by the market center 18and execution terminates at step 344.

If the response received at step 326 does indeed contain a “UR OUT”message as determined at step 328, then execution proceeds to step 330where module 42 sends a DAY order 20 specifying the lesser of themaximum disclosure quantity and the remainder of the total quantity ofthe trading order 20 received at step 312. The DAY order 20 remainspending at the market center 18 until it is determined at step 332 thatit has been filled. Execution then proceeds to step 334 where module 42sends another IOC order 20 specifying the remainder of the totalquantity of the trading order 20 received at step 312. Execution thenreturns to step 326. Steps 326 through 334 are repeated until the entiretrading order 20 is filled, as determined by not receiving a “UR OUT”message at step 328.

If it is determined at step 322 that the disclosure policy 302 of theidentified market center 18 is not an IOC policy, execution proceeds tostep 336 where module 42 determines whether the disclosure policy 302 ofthe identified market center 18 is an NOIOC policy. If so, executionproceeds to step 338 where module 42 sends a DAY order 20 specifying themaximum disclosure quantity of the trading product to be bought (orsold). The DAY order 20 remains pending at the market center 18 until itis determined at step 340 that it has been filled. Execution thenproceeds to step 342 where module 42 sends another DAY order 20specifying the lesser of the maximum disclosure quantity and theremainder of the total quantity of the trading order 20 received at step312. Execution terminates at step 344.

Order Matching Module

FIG. 11 illustrates one embodiment of order matching module 44 coupledto database 50 and price server 70. Order matching module 44 isillustrated separate from other elements of trading exchange platform 12and system for illustrative purposes only, and it should be understoodthat order matching module 44 may interoperate with one or more othercomponents of system 10 to perform the operations described herein.Where appropriate, FIG. 12 will be referred to in order to clarifyvarious operations performed by order matching module 44.

Order matching module 44 receives a trading order 20 that comprises anorder to buy a particular quantity of a particular trading product(e.g., bid request) at a target bid price, or an order to sell aparticular quantity of a particular trading product (e.g., offerrequest) at a target offer price. However, the trading order 20 isunspecified as to which market center 18 it is to be routed. Forexample, order matching module may receive a trading order 20 fromTrader 1 that comprises an order to sell 100,000 shares of XYZ stock ata target price of 9.98.

Order matching module 44 manages an order matching log 60 stored indatabase 50 in order to match the incoming trading order 20 with one ormore stored requests for the trading product. Referring to FIG. 12 thatillustrates log 60, for example, order matching module 44 may match anincoming trading order 20 specifying an offer request, such as the oneidentified above, with one or more stored bid requests for the tradingproduct illustrated in columns 404. Similarly, order matching module 44may match an incoming trading order 20 specifying a bid request for atrading product with one or more stored offer requests for the tradingproduct illustrated in columns 406.

Entries in columns 404 comprise information associated with stored bidrequests such as product 410, bid quantity 412, source 414, bid price416, and status 418. Entries in columns 406 comprise informationassociated with stored offer requests such as product 420, offerquantity 422, source 424, offer price 426, and status 428. Product 410and 420 refers to a particular trading product, such as XYZ stock, thatmay be the subject of a trade. Bid quantity 412 and offer quantity 422refer to the amount of the trading product that is being sought to buyor being offered for sale, respectively. Source 414 and 424 refers tothe party seeking to buy or sell the trading product, such as aparticular market center 18 or a particular trader operating withinsystem 10. Price 416 and 426 refers to bid price and offer price,respectively, that may be unadjusted prices 102 or adjusted prices 112.Status 418 and 428 refers to the status of a particular bid request oroffer request, respectively.

Upon receiving trading order 20 from Trader 1 specifying an order tosell 100,000 shares of XYZ stock at a target price of 9.98, ordermatching module 44 refers to columns 404 associated with stored bidrequests for XYZ stock in order to find a match. In general, ordermatching module 44 seeks to fill the trading order 20 in a manner thatwill result in the best price for the traders involved. In this regard,order matching module 44 seeks entries in columns 404 identifying thehighest bid price 416 for XYZ stock.

Each of Trader 2 and Trader 3 have submitted a bid request for XYZ stockat a bid price 416 of 10.02 which is higher than Trader 1′s target offerprice of 9.98. In the event multiple traders have submitted a tradingrequest at the same bid price (or offer price), such as the case withTrader 2 and Trader 3, order. matching module 44 fills the bid requests(or offer requests) in a particular order depending on one or more ofthe bid quantity (or offer quantity) of each request, the order thateach request was received, the identity of the trader, or any othersuitable factor used to prioritize among traders. Order matching module44 may fill the bid/offer request of a trader ahead of the bid/offerrequest of a market center 18 having the same bid price or offer pricein order to promote liquidity and reduce transaction costs.

Because the trading order 20 submitted by Trader 1 requested to sell100,000 shares, each of the bid requests submitted by Trader 2 andTrader 3 are matched, resulting in a first matched trading order betweenTrader 1 and Trader 2 for 1,000 shares of XYZ stock, and a secondmatched trading order between Trader 1 and Trader 3 for 2,000 shares ofXYZ stock. The price for each of these matched trading orders, referredto as the matched price, is based at least in part upon the bid price416 of the bid request and the offer price specified by the tradingorder 20. For example, the matched price may comprise 10.02 (bid price416 of the bid request), 9.98 (offer price specified by the tradingorder 20), or any price therebetween such as, 10.00, the average of 9.98and 10.02. The status of the bid requests associated with Trader 2 andTrader 3 is indicated with a flag, such as “Matched”. Alternatively, abid request that is matched may be removed from log 60 to indicate thatit has been matched.

The trading order 20 now has a remaining offer quantity balance of97,000 shares of XYZ stock (e.g., 100,000 shares−1,000 shares−2,000shares=97,000 shares). Order matching module 44 determines that ARCA hasquoted a bid price 416 of 10.01 for 6,000 shares of XYZ stock, which ishigher than Trader 1's target offer price of 9.98. In one embodiment,order matching module 44 therefore routes a trading order 20 to ARCAcomprising an order to sell 6,000 shares of XYZ stock at 10.01.

In other embodiments, order matching module 44 determines a quantity ofthe trading product to route in a trading order 20 to ARCA, alsoreferred to as a market center quantity, based upon the bid quantityquoted by the market center 18 (e.g., 6,000 shares of XYZ stock) and aquantity multiplier associated with the particular market center 18. Forexample, the quantity multiplier applied by the order matching module 44for ARCA may be 3× resulting in a trading order 20 routed to ARCA thatcomprises an offer to sell 18,000 shares of XYZ stock at 10.01. Thestatus 418 of the bid request associated with ARCA is now listed as“Pending” to indicate that the trading order 20 is currently pendingwith ARCA. In one embodiment, the trading order 20 routed to marketcenters 18 comprises an IOC trading order 20. In other embodiments, thetrading order 20 routed to market centers 18 comprises a type of orderdetermined by size disclosure module 42.

Order matching module 44 determines the quantity multiplier for eachmarket center 18 based upon a current or recent “fill percentage”associated with the market center 18 for the particular trading product.The “fill percentage” may be determined based upon a moving average ofthe percentage of shares filled by a market center 18 for a particulartrading product at a particular price. In particular embodiments, a 3×quantity multiplier is associated with a fill percentage of 83%.

Assuming order matching module 44 applies a quantity multiplier, tradingorder 20 now has a remaining offer quantity balance of 79,000 shares ofXYZ stock (e.g., 97,000 shares 18,000 shares 79,000 shares) Ordermatching module 44 next determines that ISLD has quoted a bid price 416of 10.01 for 7,000 shares of XYZ stock, which is higher than Trader 1'starget offer price of 9.98. In particular embodiments, order matchingmodule 44 may determine that a particular market center 18 has alreadyreceived more than a predetermined maximum number of pending tradingorders 20 from platform 12. In such a case, platform 12 will not sendfurther trading orders 20 until the current number of pending tradingorders 20 associated with that market center 18 falls below thepredetermined maximum number allowed. In the example operation describedherein, it is assumed that ISLD has exceed the predetermined maximumnumber of pending trading orders 20 allowed and, therefore, ordermatching module 44 does not send a trading order 20 to ISLD. The status418 of the bid request associated with ISLD is therefore listed as“Open”.

Order matching module 44 next determines that ARCA has quoted a bidprice 416 of 10.00 for 2,000 shares of XYZ stock, which is higher thanTrader 1's target offer price of 9.98. In particular embodiments, ordermatching module 44 may determine that if a particular market center 18has already received a trading order 20 for a particular tradingproduct, that it will not then send another trading order 20 to thatsame market center 18 for that same trading product. In otherembodiments, order matching module 44 may communicate yet anothertrading order to the same market center 18 for the same trading productin a quantity equal to the bid quantity 412 or equal to the bid quantity412 adjusted by the appropriate quantity multiplier. In the exampleoperation described herein, it is assumed that order matching module 44does not send another trading order 20 to ARCA. The status 418 of thebid request associated with ARCA is therefore listed as “Open”.

Order matching module 44 next determines that Trader 4 has submitted abid request for 50,000 shares of XYZ stock at 10.00, which is higherthan Trader 1's target offer price of 9.98. The bid request submitted byTrader 4 is matched with the trading order 20 submitted by Trader 1,resulting in a third matched trading order between Trader 1 and Trader 4for 50,000 shares of XYZ stock. As described above, the matched pricefor this matched trading order can be 9.98, 10.00 or any pricetherebetween. The status 418 of the bid request associated with Trader 4is listed as “Matched” or, alternatively, the bid request is removedfrom log 60 to indicate that it has been matched.

The trading order 20 now has a remaining offer quantity balance of29,000 shares of XYZ stock (e.g., 79,000 shares−50,000 shares 29,000shares). Order matching module 44 determines that no other bid requestsfor XYZ stock are stored in log 60. As a result, module 44 stores anoffer request in log 60 on behalf of Trader 1 for 29,000 shares of XYZstock at 9.98.

Although the operation of order matching module 44 has been detailedwith reference to matching an offer request with stored bid requests, itshould be understood that order matching module 44 may apply similaroperational principals in order to match a bid request with stored offerrequests.

A particular advantage of order matching module 44 is that it attemptsto match incoming trading orders 20 with requests submitted by othertraders, where appropriate and possible, so that the order fulfillmentprocess of system 10 is internalized within trading exchange platform12. When such an order 20 is filled internally within platform 12, ordermatching module 44 may communicate one or more acknowledgments 402 tothe appropriate traders specifying the details of the filled orders.When at least a portion of an incoming trading order 20 is not filledinternally, order matching module 44 may communicate one or more tradingorders 20 to one or more market centers 18.

FIG. 13 illustrates a flowchart 450 of an exemplary method forperforming order matching. The method begins at step 452 where module 44receives a trading order 20 comprising an order to buy a particularquantity of a particular trading product at a target bid price, or anorder to sell a particular quantity of a particular trading product at atarget offer price. Execution proceeds to step 454 where module 44determines whether a corresponding request can be identified in ordermatching log 60. For example, if the trading order 20 comprises an offerrequest for a particular trading product, then module 44 determineswhether a corresponding bid request for the particular trading productmay be identified in log 60. If the trading order 20 comprises a bidrequest for a particular trading product, then module 44 determineswhether a corresponding offer request for the particular trading productmay be identified in log 60. In particular embodiments where module 44identifies more than one corresponding request for a particular tradingproduct, execution proceeds with one of the identified requests thathave the best price, such as the highest bid price or the lowest offerprice.

If a corresponding request is identified at step 454, module 44determines whether the request is associated with a trader at step 456.If so, execution proceeds to step 458 where module 44 matches thetrading order 20 with the request identified at step 454 to form amatched trading order. If a quantity balance of the trading orderremains, as determined at step 460, execution returns to step 454 whereit is determined whether another corresponding request is identified.

If the request identified at step 454 is not a trader request asdetermined at step 456, then execution proceeds to step 462 where module44 determines whether the request is associated with a market center 18.If so, module 44 determines whether the market center 18 has alreadyreceived more than a predetermined maximum number of pending tradingorders 20 from platform 12 at step 464. If so, execution returns to step454. If not, execution proceeds to step 466 where module 44 determinesan appropriate quantity multiplier for the particular market center 18.Module 44 communicates a trading order 20 bound for the particularmarket center 18 at step 468.

If a quantity balance of the trading order remains, as determined atstep 470, execution returns to step 454 where it is determined whetheranother corresponding request is identified. If another correspondingrequest is not identified at step 454, execution proceeds to step 472where various parameters of the trading order 20 are stored as a requestin order matching log 60. For example, if the trading order 20 specifieda bid request, then module 44 stores a bid request for the remainingquantity balance in log 60 at step 472. If the trading order 20specified an offer request, then module 44 stores an offer request forthe remaining quantity balance in log 60 at step 472. Upon storing therequest at step 472 or upon determining that a quantity balance oftrading order 20 does not remain at steps 460 or 470, execution proceedsto step 474 where the method terminates.

Although the present invention has been described in severalembodiments, a myriad of changes and modifications may be suggested toone skilled in the art, and it is intended that the present inventionencompass such changes and modifications as fall within the scope of thepresent appended claims.

What is claimed is:
 1. A system for controlling the disclosure of atrading order, comprising: a memory operable to store disclosurepolicies associated with market centers; and a processor couple to thememory and operable to: receive a trading order for a trading product,the trading order specifying a total quantity of the trading product anda maximum disclosure quantity of the trading product, wherein thetrading order is associated with a particular market center; and routethe trading order to the particular market center according to thedisclosure policy associated with the particular market center.